home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
u_man
/
cat1
/
cc.z
/
cc
Wrap
Text File
|
1998-11-02
|
60KB
|
1,001 lines
CC(1) Last changed: 3-9-98
NNAAMMEE
cccc, cc8899 - Invokes the MIPS and MIPSpro C compiler
SSYYNNOOPPSSIISS
cccc [--oo3322 | --nn3322 | --6644] [--aannssiiEE] [--aannssiiWW] [--aannssii] [--aavvooiidd__ggpp__oovveerrffllooww]
[--cc] [--cccckkrr] [--CCLLIISSTT::......] [--ccoommmmoonn] [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e]
[--DDEEBBUUGG::......] [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]]
[[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]]
[[--ffbb<<_f_i_l_e>]] [[--ffbbggeenn]] [[--ffbbuussee<<_f_i_l_e>>]] [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]]
[[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]] [[--hheellpp]] [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]]
[[--IINNLLIINNEE::......]] [[--IIPPAA::......]] [[--KKPPIICC]] [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]]
[[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]] [[--MM]] [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n
[[--mmpp]] [[--nnooccpppp]] [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]] [[--OOPPTT::......]]
[[--PP]] [[--ppccaa]] [[--ppeeddaannttiicc]] [[--rr]] [[--rr1100000000]] [[--rr55000000]] [[--rr88000000]] [[--SS]] [[--sshhooww]]
[[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]] [[--UU _n_a_m_e]]
[[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]] [[--WW
_c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]] [[--xxaannssii]]
[[--XXccpplluussccoommmm]] [[--xxggoott]] [[--YY _c,_p_a_t_h]]
IIMMPPLLEEMMEENNTTAATTIIOONN
IRIX systems
DDEESSCCRRIIPPTTIIOONN
This man page describes the cccc(1) and cc8899(1) commands. These commands
invoke the MIPS and MIPSpro C compiler and the source preprocessor on
source files that contain C code. cc8899 is used to invoke the C
compiler when the environment variable __XXPPGG is defined. The command
then operates in conformance with the X/Open XPG4 standard. Option or
command line differences that may occur due to conformance to this
standard are noted in the option descriptions.
By default, the C compiler creates an executable file named aa..oouutt.
Other files used and created by the C compiler are discussed under the
FILES section of this man page. See the lldd(1) man page for load-time
options.
If conflicting options are specified, the option specified last on the
command line overrides the previously specified option. Exceptions to
this rule are noted in the individual option descriptions.
Most ##pprraaggmmaa directives override corresponding command-line options.
Exceptions to this rule are noted in option or ##pprraaggmmaa directive
descriptions.
Some command options, for example, --LLIISSTT, --LLNNOO, --OOPPTT, --TTAARRGG, and --TTEENNVV
accept several arguments and allow you to specify a setting for each
argument. To specify multiple arguments, either use colons to
separate each argument or specify multiple options on the command
line. For example, the following command lines are equivalent:
cc -LIST:notes=ON:options=OFF b.f
cc -LIST:notes=ON -LIST:options=OFF b.f
The SGI compilers support three different Application Binary
Interfaces, which are controlled by the following options (see the
aabbii(5) man page for more information on these interfaces):
OOppttiioonn AAccttiioonn
--oo3322 or --3322 Generates a 32-bit object. (See the o32(5) man
page for option descriptions and details.) This
defaults to --mmiippss22 if --mmiippss11 has not been
specified. See the ppee__eennvviirroonn(5) man page for
information on the CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH
environment variable.
--nn3322 Generates a 32-bit object. This defaults to
--mmiippss33 if --mmiippss44 has not been specified.
--6644 Generates a 64-bit object. This defaults to
--mmiippss44 if --mmiippss33 has not been specified. See the
ppee__eennvviirroonn(5) man page for information on the
CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH environment variable.
The following alphabetized list of options are specific to the cccc and
cc8899 commands and are valid in the n32 and 64 ABIs. See the oo3322(5) man
page for options that are specific to the o32 ABI.
---- In XPG4 mode, standard utilities that do not accept options,
but that do accept operands, will recognize ---- as the first
argument to be discarded. This is required because portable
applications need a way to shield their operands from any
arbitrary options that the implementation may provide as an
extension.
For example, if the standard utility ffoooo is listed as taking
no options, and the application needed to give it a pathname
with a leading hypen, it could safely do it as: ffoooo ---- --mmyyffiillee
and avoid any problems with --mm used as an extension.
--aannssii Enables pure ANSI/ISO C mode. To see a list of defined
symbols, enter the cccc --sshhooww ffoooo..cc command and see which
symbols have been added as --DDssyymmbbooll__nnaammee. Default is xxaannssii.
NOTE: When compiling in pure ANSI/ISO mode, several standard
UNIX symbols (for example, eennvviirroonn, eenndd) may only be
referenced by their ANSI/ISO-compliant counterparts (for
example, __eennvviirroonn, __eenndd). The type lloonngg lloonngg is allowed, but
results in a warning. To take advantage of this type in
libraries that refer to ____iinntt6644__tt and ____uuiinntt6644__tt you must
define the macro ____LLOONNGGLLOONNGG on the command line; otherwise,
____iinntt6644__tt and ____uuiinntt6644__tt are defined as structs. See the _A_N_S_I
_C _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e for more information.
If --aannssii is specified with cccckkrr or xxaannssii, the last option
specified is effective and the rest are ignored.
--aannssiiEE Issues error messages when non-standard features are used.
Available in ANSI/ISO C conformance (see --aannssii).
--aannssiiWW Issues warning messages when non-standard features are used.
This is the default in pure ANSI/ISO C mode. Available in
ANSI/ISO C conformance (see --aannssii).
--aavvooiidd__ggpp__oovveerrffllooww
Sets assorted options that are intended to avoid GOT overflow.
--cc Creates a relocatable object file for each named source file,
but does not link the object files. The relocatable object
file name corresponds to the name of the source file; a ..oo
suffix is substituted for the suffix of the source file.
--cccckkrr The traditional K&R/Version7 C with SGI extensions, including
function prototypes, and the types vvooiidd and vvooiidd**. To see a
list of defined symbols, enter the cccc --sshhooww ffoooo..cc command and
see which symbols have been added as --DDssyymmbbooll__nnaammee. Default
is xxaannssii. If specified with --aannssii or --xxaannssii, the last option
specified is effective and the rest are ignored.
--CCLLIISSTT:: ......
Controls emission of the compiler's internal program
representation back into C code, after IPA inlining and loop-
nest transformations. This is a diagnostic tool, and the
generated C code may not always be compilable. This compiler
option may be discontinued in future compiler releases. The
generated C code is written to two files, a header file
containing file-scope declarations, and a file containing
function definitions. The individual controls in this group
are as follows:
== (( OONN||OOFFFF ))
Enables the C listing. This option is implied by any of
the others, but may be used to enable the listing when no
other options are required. For example, specifying
--CCLLIISSTT::==OONN is the equivalent of specifying --cclliisstt.
ddoottcc__ffiillee== _f_i_l_e_n_a_m_e
Writes the program units into the specified file,
_f_i_l_e_n_a_m_e. The default source file name has the extension
..ww22cc..cc.
ddootthh__ffiillee== _f_i_l_e_n_a_m_e
Specifies the file into which file-scope declarations are
deposited. Defaults to the source file name with the
extension ..ww22cc..hh.
eemmiitt__ppffeettcchh [[ == (( OONN||OOFFFF ))]]
Displays prefetch information as comments in the
transformed source. If OONN or OOFFFF is not specified, the
default is OOFFFF.
lliinneelleennggtthh== _n
Sets the maximum line length to _n characters. The
default is unlimited.
sshhooww [[ == (( OONN||OOFFFF ))]]
Prints the input and output file names to stderr. If OONN
or OOFFFF is not specified, the default is OONN.
--ccoommmmoonn Relaxes the ANSI/ISO C Strict-Ref/Def-initialization model to
the traditional IRIX Relaxed Ref/Def model. With --ccoommmmoonn, the
declaration iinntt ii;; in multiple files at file level is merged.
Without it, ANSI/ISO C generates a warning (from lldd(1)) about
duplicate definitions. When C and Fortran compiled objects
are linked together and an ANSI C defined variable should be
located at the same address as a Fortran common block, you
must compile the C source with the --ccoommmmoonn flag. When
compiling in traditional K&R/Version7 C mode (see --cccckkrr), the
--ccoommmmoonn option is ignored.
--DD _n_a_m_e=_d_e_f
--DD _n_a_m_e Define _n_a_m_e to the C macro preprocessor, as if by ##ddeeffiinnee. If
no definition is given, _n_a_m_e is defined as 11.
--DDEEBBUUGG:: ......
Controls compiler features related to debugging, such as
checking for possible errors (at compile time or execution
time), or controlling the treatment of warning messages. See
the DDEEBBUUGG__ggrroouupp((55)) man page for more information, including
the individual options in this group. See also the --gg option
for controlling emission of information for the debugger.
--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t
Treats messages with the specified numbers as errors and does
not generate an object file. _n_u_m_b_e_r_l_i_s_t is a comma-separated
list of message numbers.
--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t
Treats messages with the specified numbers as remarks unless
they are non-discretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
separated list of message numbers. The messages specified by
this option are reported only if --ffuullllwwaarrnn is specified.
--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t
Equivalent to specifying --wwooffff _n_u_m_b_e_r_l_i_s_t. _n_u_m_b_e_r_l_i_s_t is a
comma-separated list of message numbers.
--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t
Treats messages with the specified numbers as warnings unless
they are non-discretionary errors. _n_u_m_b_e_r_l_i_s_t is a comma-
separated list of message numbers. If ww is also specified,
the messages specified by this option are not reported.
--ddoollllaarr Allows the dollar sign ($) as a character in C identifiers
(including the leading character of an identifier). The
option is provided solely for compatibility purposes. The
dollar sign is not a standard C identifier character and its
use is not recommended.
--EE Runs only the preprocessor phase on the source files and sends
the result to standard output. The resultant output will
contain line directives. This option overrides the --nnooccpppp
option.
--ffbb <<_f_i_l_e>>
Specifies the feedback file (_f_i_l_e) to be used as input to the
compilation. This feedback file can be produced by using
pprrooff(1) with its --ffeeeeddbbaacckk option from one or more ..CCoouunnttss
files generated by the execution of the instrumented program
produced by ppiixxiiee(1).
--ffbbggeenn Generates an instrumented executable program. Such an
executable is suitable for producing one or more ..CCoouunnttss files
for feedback compilation. When the --cc option is used to
produce an object file that is eventually linked to form an
instrumented executable, the --ffbbggeenn option should also be
specified. If the --cc option is not specified, ppiixxiiee(1) is run
automatically to instrument the generated executable. Run the
..xx executable file that is generated without the ..xx suffix.
--ffbbuussee <<_f_i_l_e>>
Specifies a ..CCoouunnttss file that is used to guide feedback
compilation. The specified file is used along with the
instrumented binary that produced the ..CCoouunnttss file to generate
a compiler feedback file, which is then used to direct
optimization of the program. Run the ..xx executable file that
is generated without the ..xx suffix.
--ffllooaatt The --ffllooaatt option is ignored in ANSI/ISO C conformance mode
and only has effect in --cccckkrr mode. ANSI/ISO C conformance
mode uses single precision floating-point operations where
allowed by the Standard. Causes the compiler to use single-
precision floating-point whenever float is specified (except
in function arguments). In the following example, aa and bb are
promoted to double and a double-precision multiply is done,
followed by a conversion back to single-precision for the
assignment to cc.
ffllooaatt aa;; iinntt bb;; ffllooaatt cc;; cc == aa ** bb;;
bb is promoted to single-precision and a single-precision
multiply is done. This option does not affect float and
double argument passing; float function arguments are promoted
to double unless function prototypes are used. Unsuffixed
floating-point constants are cast to single precision values
in subexpressions with no double (or long double) operands.
--ffllooaatt__ccoonnsstt
Interprets floating point constants without precision suffixes
as single-precision whenever doing so will not lose precision
and the context is otherwise single-precision. This may
prevent unnecessary conversions between single- and double-
precision in ANSI/ISO C conformance mode when the variables
involved have all been declared as float but the constants
have not been appended with ff.
--ffuullllwwaarrnn
Does various extra checks and produces additional warnings
that are normally suppressed by default. This option is
recommended for all compiles during software development.
--GG _n_u_m Specifies the maximum size (in bytes) of a data item that is
to be accessed from the global pointer. _n_u_m must be a
positive integral number. If _n_u_m is zero, no data is accessed
from the global pointer. The default value is 8 bytes.
Data stored relative to the global pointer can be accessed by
the program quickly, but this space is limited. Large
programs may overflow the space accessed by the global pointer
at load time. If the loader gives the error message BBaadd --GG
nnuumm vvaalluuee, recompile specifying a lower value for _n (or add
--GG00 if no --GG was specified. You should usually use the same
value of this switch for compiling all files that comprise a
program executable for DSO.
--gg[_n] Specifies the debugging information produced by the compiler.
_n can be one of the following:
00 No debugging information for symbolic debugging is
produced. This is the default.
22 Produces additional debugging information for full
symbolic debugging. Optimizations that limit full
symbolic debugging are not done. This overrides the
optimization options (--OO, --OO11, --OO22, --OO33).
33 Produces additional debugging information for symbolic
debugging of fully optimized code, which makes the
debugger inaccurate. This can be used with the
optimization options (--OO, --OO11, --OO22, --OO33).
Specifying --gg without a debug level is equivalent to
specifying --gg22.
--hheellpp Lists all of the available options.
--II _d_i_r Searches directories for ##iinncclluuddee files whose names do not
begin with //. Directories are searched in the following
order: directory of the _f_i_l_e argument, directories specified
in --II options, and the standard directory (//uussrr//iinncclluuddee).
--iiggnnoorree__ssuuffffiixx
Determines the language of the source file being compiled by
the command used to invoke the compiler. By default, the
language is determined by the file suffixes (..cc, ..ccpppp, ..CC,
..ccxxxx, ..ff, ..ff9900, ..ss). When the --iiggnnoorree__ssuuffffiixx option is
specified, the cccc command invokes the C compiler.
--IINNLLIINNEE:: ......
The standalone inliner option group controls application of
intra-file subprogram inlining when interprocedural analysis
is not enabled (see the --IIPPAA description). See the iippaa((55)) man
page for more information, including the individual options in
this group.
--IIPPAA:: ......
The inter-procedural analyzer option group controls
application of inter-procedural analysis and optimization,
including inlining, constant propagation, common block array
padding, dead function elimination, alias analysis, and
others. Specify --IIPPAA by itself to invoke the interprocedural
analysis phase with default options. If you compile and link
in distinct steps, you must specify at least --IIPPAA for the
compile step, and specify --IIPPAA and the individual options in
the group for the link step. If you specify --IIPPAA for the
compile step, and do not specify --IIPPAA for the link step, you
will receive an error. See the iippaa((55)) man page for more
information, including the individual options in this group.
--KKPPIICC Generates position-independent code (PIC). This is the
default and is needed for programs linking with dynamic shared
libraries. If you do not want to generate PIC code, specify
--nnoonn__sshhaarreedd on the command line.
--LL _d_i_r_e_c_t_o_r_y
In XPG4 mode, changes the algorithm of searching for libraries
named in --LL operands to look in the specified directory before
looking in the default location. Directories specified in --LL
options are searched in the specified order. Multiple
instances of --LL options can be specified.
--ll _l_i_b_r_a_r_y
In XPG4 mode, searches the specified _l_i_b_r_a_r_y. A library is
searched when its name is encountered, so the placement of a
--ll operand is significant.
--LLAANNGG:: ......
The language feature option group controls the source language
interpretation assumed by the compiler. The individual
controls in this group are as follows:
ppcchh [[ == (( OONN||OOFFFF ))]]
Automatically uses or creates a precompiled header file.
This option cannot be specified with --LLAANNGG::uussee__ppcchh or
--LLAANNGG::ccrreeaattee__ppcchh.
A precompiled header file contains a snapshot of all the
code preceding the "header stop" point, which is generally
the first token in the primary source file that does not
belong to a preprocessing directive. Use of precompiled
headers may speed up compilation in certain cases. For
details on precompiled header files, see the _M_I_P_S_p_r_o
_C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e.
ccrreeaattee__ppcchh==_f_i_l_e-_n_a_m_e
Creates a precompiled header with the specified _f_i_l_e-_n_a_m_e.
This option cannot be specified with --LLAANNGG::ppcchh or
--LLAANNGG::uussee__ppcchh.
uussee__ppcchh==_f_i_l_e-_n_a_m_e
Specifies the precompiled header, _f_i_l_e-_n_a_m_e, if it is
valid for this compilation unit. The compilation proceeds
with a warning if the ppcchh file cannot be used. This
option cannot be specified with --LLAANNGG::ppcchh or
--LLAANNGG::ccrreeaattee__ppcchh.
ppcchh__ddiirr==_d_i_r_e_c_t_o_r_y-_n_a_m_e
Searches _d_i_r_e_c_t_o_r_y-_n_a_m_e and/or creates a precompiled
header file. This option can be specified with --LLAANNGG::ppcchh,
--LLAANNGG::ccrreeaattee__ppcchh, and --LLAANNGG::uussee__ppcchh. When specified with
--LLAANNGG::ccrreeaattee__ppcchh or --LLAANNGG::uussee__ppcchh, the indicated filename
is appended to the directory specified by this name,
unless the file name is an absolute path name.
--LLIISSTT:: ......
The listing option flag controls information that gets written
to a listing (..ll) file. The individual controls in this group
are:
== (( OONN||OOFFFF )) Enables or disables writing the listing file.
The default is OONN if any --LLIISSTT:: group options are
enabled. By default, the listing file contains a
list of options enabled.
aallll__ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
Enables or disables listing of most supported
options. The default is OOFFFF.
nnootteess [[ == (( OONN||OOFFFF ))]]
If an assembly listing is generated (for example,
on --SS), various parts of the compiler (such as
software pipelining) generate comments within the
listing that describe what they have done.
Specifying OOFFFF suppresses these comments. The
default is OONN.
ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
Enables or disables listing of the options
modified (directly in the command line, or
indirectly as a side effect of other options).
The default is OOFFFF.
ssyymmbboollss [[ == (( OONN||OOFFFF ))]]
Enables or disables listing of information about
the symbols (variables) managed by the compiler.
--LLNNOO Specifies options and transformations performed on loop nests.
This option is enabled only if the --OO33 option is also
specified on the compiler command line. For information on
the LNO options that are in effect during a compilation, use
the --LLIISSTT option. See the llnnoo((55)) man page for more
information, including the individual options in this group.
--MM Runs only the preprocessor on the named files and writes
mmaakkee(1) dependencies to standard output.
--MMDDuuppddaattee _f_i_l_e_n_a_m_e
Updates _f_i_l_e_n_a_m_e to contain mmaakkee(1) dependencies for the
output file. --MMDDuuppddaattee updates only lines in _f_i_l_e_n_a_m_e that
end with a distinctive mmaakkee comment and begin with the name of
the output file followed by a colon. The standard option used
with mmaakkee(1) is --MMDDuuppddaattee MMaakkeeddeeppeenndd.
--mmiippss_n Specifies the Instruction Set Architecture (ISA). _n can be
one of the following:
11 Generates code using the instruction set of the
R2000/R3000 RISC architecture, and searches for mips1
libraries/objects at link-time. This defaults to --oo3322.
22 Generates code using the MIPS II instruction set (MIPS I +
R4000 specific extensions), and searches for mips2
libraries/objects at link-time. This defaults to --oo3322.
33 Generates code using the full MIPS III instruction set,
and searches for mips3 libraries/objects at link-time. If
--nn3322 or --6644 are not specified, this defaults to --6644 on
R8000-based systems and --nn3322 on all other systems.
--mmiippss44
Generates code using the full MIPS IV instruction set
which is supported on R10000, R5000 and R8000 systems, and
searches for mips4 libraries/objects at link-time. This
is the default on R8000 systems. If --nn3322 or --6644 are not
specified, this defaults to --6644 on R8000-based systems and
--nn3322 on all other systems.
--mmpp Enables multiprocessing options. For more information on the
directives, see the _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
--nnooccpppp Does not run the preprocessor phase on the source files. This
option is ignored when compiling a ..ii file.
--nnoonn__sshhaarreedd
Builds a non-shared object. This is the opposite of --KKPPIICC.
The --nnoonn__sshhaarreedd option causes the linker to search the
nnoonnsshhaarreedd subdirectory of each default library search
directory. For more information, see the lldd(1) man page. The
linker defaults the archive extensions from ..ssoo to ..aa. The
appropriate non-shared library images must be installed.
--nnoossttddiinncc
Does not search for ##iinncclluuddee files in the standard directory
(//uussrr//iinncclluuddee).
--oo _o_u_t_p_u_t
Produces an absolute binary file named _o_u_t_f_i_l_e. When this
option is used in conjunction with the --cc option and a single
C source file, a relocatable object file named _o_u_t_f_i_l_e is
produced. When specified with the --SS option, the --oo option is
ignored. If --oo and --cc are not specified, a file named aa..oouutt
is produced.
--OO[_n] Specifies the basic level of optimization desired. _n can be
one of the following:
00 Turns off all optimizations. This is the default.
11 Turns on local optimizations that can be done quickly.
22 Turns on extensive optimization. The optimizations at
this level are generally conservative, in the sense that
they are virtually always beneficial, provide
improvements commensurate to the compile time spent to
achieve them, and avoid changes which affect such things
as floating point accuracy.
33 Turns on aggressive optimization. The optimizations at
this level are distinguished from --OO22 by their
aggressiveness, generally seeking highest-quality
generated code even if it requires extensive compile
time. They may include optimizations that are generally
beneficial but may hurt performance.
This option also enables the --OOPPTT::rroouunnddooffff==22 option which
does aggressive rearrangement of floating point
calculations with potential effects on accuracy. See the
oopptt(5), iippaa(5), and llnnoo(5) man pages for additional
information on general optimization, standalone inliner
and interprocedural analysis, and loop nest optimizer,
respectively.
If no value is specified for _n, 2 is assumed.
--OOffaasstt [[ == _i_p_x_x]]
Selects optimizations that maximize performance for the given
SGI target platform, _i_p_x_x. These optimizations may differ
between releases of the compiler and among the supported
platforms. They enable the full instruction set of the target
platform (for example, --mmiippss44 for an R10000). Although the
optimizations are generally safe, they may affect floating
point accuracy due to rearrangement of computations. Typical
optimizations include --OO33, --IIPPAA, --TTAARRGG::ppllaattffoorrmm==_i_p_x_x, --nn3322,
and --OOPPTT::OOlliimmiitt==00::rroouunnddooffff==33::ddiivv__sspplliitt==OONN::aalliiaass==ttyyppeedd. See
the --TTAARRGG::ppllaattffoorrmm==_i_p_x_x option for information about the
optional argument. To determine which options are set by
--OOffaasstt, use the --LLIISSTT::ooppttiioonnss option. The default is an
R10000 Power Challenge, IP25.
--OOPPTT::......
Controls miscellaneous optimizations. This option overrides
default optimizations. See the oopptt(5) man page for more
information, including the individual options in this group.
--PP Runs only the preprocessor and puts the result for each source
file in a corresponding ..ii file. The ..ii file has no inline
directives in it.
--ppccaa [[lliisstt || kkeeeepp]]
Invokes the MIPSpro automatic parallelization. One of the
following two arguments can also be specified:
lliisstt Runs ppccaa and produces a listing file appended with ..LL,
and explains which loops were parallelized and which were
not (and why).
kkeeeepp Runs ppccaa, produces the listing file, and produces a
transformed multiprocessed C intermediate file appended
with ..MM (Power C only).
--ppeeddaannttiicc
In ANSI/ISO mode, warns that the ##iiddeenntt preprocessor directive
is non-standard. This directive is a System V extension,
which by default is silently ignored. This option is ignored
in K&R/Version7 C mode.
--rr When specified with --IIPPAA and --cc during compilation, the
resulted object is an ELF relocatable object, not an
intermediate object. When specified with --IIPPAA::rreelloopptt==oonn, the
resulting object has non-PIC optimizations performed on it.
--rr55000000 Schedules code for the R5000 and adds
--LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr55000000 to the head of the library
search path depending on which ABI and ISA is specified or
implied. (See the mmaatthh(3) man page for details of math
library usage.)
--rr88000000 Schedules code for the R8000 and adds
--LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr88000000 to the head of the library
search path depending on which ABI and ISA is specified or
implied. (See the mmaatthh(3) man page for details of math
library usage.)
--rr1100000000 Schedules code for the R10000 and adds
--LL//uussrr//lliibb{{3322,,6644}}//mmiippss{{33,,44}}//rr1100000000 to the head of the library
search path depending on which ABI and ISA is specified or
implied. (See the mmaatthh(3) man page for details of math
library usage.)
--SS Compiles the specified source files and creates symbolic
assembly language output files suffixed with ..ss.
--sshhooww Prints the passes as they execute with their arguments and
their input and output files.
--ssiiggnneedd Causes all cchhaarr declarations to be ssiiggnneedd cchhaarr declarations.
The default is to treat them as uunnssiiggnneedd cchhaarr declarations.
--TTAARRGG:: ......
The target option group controls the target architecture and
machine for which code is generated. The individual controls
in this group are:
ddiissmmiissss__mmeemm__ffaauullttss [[ == (( OONN||OOFFFF ))]]
Forces the kernel to dismiss any memory faults (such as
SIGSEGV or SIGBUS) which occur during execution of the
program (not just the code being compiled). This option
allows optimizations which might cause extra faults and
can slow down execution if extra faults occur. It also
prevents recognition of legitimate faults. Default is
OOFFFF.
eexxcc__mmaaxx== [[II]][[UU]][[OO]][[ZZ]][[VV]]
Specifies the maximum set of IEEE-754 floating point
exceptions for which traps may be enabled at runtime for
the program (not just the code being compiled). Zero or
more of the five letters specify inexact (II), underflow
(UU), overflow (OO), divide-by-zero (ZZ), and invalid
operation (VV) exceptions. This option allows
optimizations which might cause extra exceptions, and it
may prevent recognition of legitimate faults. It does
not affect explicit setting of exception enable flags by
the program, and should be avoided if the program does
this. See also the --TTAARRGG::eexxcc__mmiinn description. Default
is IIUUOOZZVV, affected by the --TTEENNVV::XX option.
eexxcc__mmiinn== [[II]][[UU]][[OO]][[ZZ]][[VV]]
Specifies the minimum set of IEEE-754 floating point
exceptions for which traps must be enabled at runtime for
the program (not just the code being compiled). Zero or
more of the five letters specify inexact (II), underflow
(UU), overflow (OO), divide-by-zero (ZZ), and invalid
operation (VV) exceptions. This option does not affect
explicit setting of exception enable flags by the
program, and should be avoided if the program does this.
See also the --TTAARRGG::eexxcc__mmaaxx option. The --TTAARRGG::eexxcc__mmaaxx and
--TTAARRGG::eexxcc__mmiinn options specified for the various files
that comprise a program must be consistent; for example,
none of the --TTAARRGG::eexxcc__mmiinn values may require exceptions
disabled by --TTAARRGG::eexxcc__mmaaxx values. Default is none.
ffpp__pprreecciissee [[ == (( OONN||OOFFFF ))]]
Forces the target processor into precise floating point
mode at execution time. Using this option to compile any
of the component source files of a program invokes this
feature in the resulting program. This option is
supported only on R8000 target processors and can cause
significant performance degradation for programs with
heavy floating point usage. See also the ffppmmooddee(1)
command.
iissaa== (( mmiippss33||mmiippss44 ))
Identifies the target instruction set architecture for
compilation, such as the set of instructions that are
generated. Specify --TTAARRGG::iissaa==mmiippss33 for code that must
run on R4000 processors. This option is equivalent to
specifying --mmiippss33 or --mmiippss44 (see those options for
defaults).
mmaadddd [[ == (( OONN||OOFFFF ))]]
Enables or disables transformations to use multiply/add
instructions. These instructions perform a multiply and
an add with a single roundoff. They are more accurate
than the usual discrete operations, and may cause results
not to match baselines from other targets. Use this
option to determine whether observed differences are due
to mmaadddds. Default is OONN for MIPS IV target, ignored for
others.
ppllaattffoorrmm [[ == _i_p_x_x]]
Identifies the target SGI platform for compilation,
choosing various internal parameters (such as cache
sizes) appropriately. The current supported values are
ip19, ip20, ip21, ip22_4k, ip22_5k, ip24, ip25, ip26,
ip27, ip28, ip30, ip32_5k, and ip32_10k. The appropriate
selection for your platform can be determined by running
""hhiinnvv --cc pprroocceessssoorr"". The first line identifies the
proper IP number and, for those where a processor suffix
(for example, __44kk) is required, the next line identifies
the processor (R4000).
pprroocceessssoorr== (( rr44000000||rr55000000||rr88000000||rr1100000000 ))
Selects the processor for which to schedule code. The
chosen processor must support the ISA specified (or
implied by the ABI).
ssyynncc [[ == (( OONN||OOFFFF ))]]
Enable/disable use of SYNC instructions. Default is OONN.
--TTEENNVV:: ......
The target environment option group controls the target
environment assumed and/or produced by the compiler. The
individual controls in this group are:
aalliiggnn__aaggggrreeggaattee[[== _b_y_t_e_s ]]
Controls alignment of allocated aggregates, such as
structs and arrays. _b_y_t_e_s specifies that any aggregate
object at least that large is to have at least that
alignment. By default (or if _b_y_t_e_s is not specified),
aggregates are aligned to the integer register size, for
example, 8 bytes for 64-bit programs and 4 bytes for 32-
bit programs. The value 0 specifies that the minimum
alignment consistent with the ABI is to be used.
Otherwise, the value given must be a power of two no
greater than 16.
cchheecckk__ddiivv[[==NN]]
See --DDEEBBUUGG::ddiivv__cchheecckk on the DDEEBBUUGG__ggrroouupp(5) man page.
llaarrggee__GGOOTT [[ ==OONN ]]
Assumes that the Global Offset Table (for shared code) is
more than 64K bytes and generates large offsets for
references to it. Default is OOFFFF. See also the
ssmmaallll__GGOOTT option description.
ssmmaallll__GGOOTT [[ ==OONN ]]
Assumes that the Global Offset Table (for shared code) is
less than 64K bytes and generates small offsets for
references to it. This is the default mode. See also the
llaarrggee__GGOOTT option decription.
vvaarraarrggss__pprroottoottyyppeess [[ == (( OOFFFF||OONN ))]]
See the --DDEEBBUUGG::vvaarraarrggss__pprroottoottyyppeess option description on
the DDEEBBUUGG__ggrroouupp(5) man page.
XX==00 .... 44
Specifies the level of enabled exceptions that is assumed
for purposes of performing speculative code motion
(default level 1 at --OO00 .... --OO22, 2 at --OO33). In general,
an instruction is not speculated (i.e. moved above a
branch by the optimizer) unless any exceptions it might
cause are disabled by this option. At level 0, no
speculative code motion may be performed. At level 1,
safe speculative code motion may be performed, with
IEEE-754 underflow and inexact exceptions disabled. At
level 2, all IEEE-754 exceptions are disabled except
divide by zero. At level 3, all IEEE-754 exceptions are
disabled including divide by zero. At level 4, memory
exceptions may be disabled or ignored.
NOTE: At levels above the default level 1, various
hardware exceptions that are normally useful for
debugging, or which are trapped and repaired by the
hardware, may be disabled or ignored, with the potential
of hiding obscure bugs. The program should not
explicitly manipulate the IEEE floating point trap-enable
flags in the hardware if this option is used.
zzeerrooiinniitt__iinn__bbssss [[ == (( OOFFFF||OONN ))]]
Enables data that is initialized to zero to be loaded
into the ..bbssss section instead of the ..ddaattaa section.
--ttrraappuuvv This option has been replaced by --DDEEBBUUGG::ttrraapp__uunniinniittiiaalliizzeedd.
See the DDEEBBUUGG__ggrroouupp(5) man page.
--UU _n_a_m_e Removes any initial definition of _n_a_m_e.
--uussee__rreeaaddoonnllyy__ccoonnsstt
Puts string literals and file-level (static, common, or
external) ccoonnsstt qualified initialized variables into a ..rrooddaattaa
section to separate these objects from data likely to be
modified. This is the default. However, if you want
constants to not be writeable, then in addition to specifying
--uussee__rreeaaddoonnllyy__ccoonnsstt, you must also specify --GG00 --rrddaattaa__sshhaarreedd,
because by default, the linker makes ..rrooddaattaa and gp-relative
sections writable.
--uussee__rreeaaddwwrriittee__ccoonnsstt
Puts all ccoonnsstt qualified variables and string literals in a
readable and writable data section.
--vv This option has the same functionality as specifying --ffuullllwwaarrnn
(verbose warnings).
--vveerrssiioonn
Displays the version number of the compiler.
--WW _c,_a_r_g_1[[,,_a_r_g_2......]]
Passes the argument(s) _a_r_g_i to the compiler pass _c where _c is
one of [ppKKMMffbbaall]. The cc selects the compiler pass according
to the following table:
NNaammee ((--nn3322 oorr --6644)) CChhaarraacctteerr
preprocessor pp
pca KK (Automatic Parallelization
Option Only)
mpc
fec ff (See below)
be bb
asm aa
ld ll
Sets of these phase names can be used to select any
combination of phases. For example, --WWbbaa,,--oo,,ffoooo passes the
option --oo ffoooo to the bb and aa phases.
--ww Suppresses warning messages.
--ww22 Counts warnings as errors.
--wwooffff aallll
Suppresses warning messages.
--wwooffff _n_u_m_b_e_r_l_i_s_t
(ANSI/ISO C only) Suppresses warning messages. _n_u_m_b_e_r_l_i_s_t is
a comma-separated set of 1 or more numbersets. A numberset is
either a simple integer or a pair of integers separated by a
hyphen. Examples: --wwooffff 11552277 suppresses warning 1527. --wwooffff
11552277--11557700 suppresses warnings 1527 through 1570. --wwooffff 11660000--
11770000,,11770055--11779900 suppresses numbers 1600 through 1700 and 1705
through 1790.
--xxaannssii (ANSI/ISO C only) Enables ANSI/ISO C with all the same
definitions as K&R/Version7 C mode (--cccckkrr). ____SSTTDDCC____ and
____EEXXTTEENNSSIIOONNSS____ are defined, many symbols are added into the
namespace, and ____IINNLLIINNEE__IINNTTRRIINNSSIICCSS is defined and may cause
some intrinsic <<mmaatthh..hh>>, <<ssttddiioo..hh>>, <<ssttrriinngg..hh>>, and <<ccuurrsseess..hh>>
library functions to be inlined. Such inlined functions may
not set eerrrrnnoo in accordance with the strict ANSI/ISO C
standard requirements. --xxaannssii is the default used by the
compiler unless the environment variable SSGGII__CCCC is set (see
the SSGGII__CCCC environment variable definition on this man page).
If specified with --cccckkrr or --aannssii, the last option specified is
effective and the rest are ignored.
--XXccpplluussccoommmm
Applies C++ style comment rules.
--xxggoott Uses a 32-bit offset in the Global Symbol Table (GOT). By
default, addresses are loaded out of the GOT using a 16-bit
offset from a context pointer. The default size of the GOT is
limited to 64K bytes or about 8K worth of symbols. This can
result in receiving the GGOOTT oovveerrffllooww message. Use of the
--xxggoott option lets the GOT contain up to 1G of entries;
however, the resulting executable will be somewhat larger and
slower. --xxggoott is a synonym for --TTEENNVV::llaarrggee__GGOOTT.
Another solution for GGOOTT oovveerrffllooww problems is to compile the
objects without the --xxggoott option and to link using the
--mmuullttiiggoott option which is described on the lldd(1) man page.
For more information about the GOT, the --xxggoott option and some
important notes about its use, see the ddssoo(5) man page (see
the FAQ section, "What should I do about a GOT overflow?").
--YY _c,_p_a_t_h
Sets the _p_a_t_h in which to find the associated phase, using the
same phase names as given in the --WW option. The following
characters can also be specified:
II Specifies where to search for include files
SS Specifies where to search for startup files (ccrrtt**..oo)
LL Specifies where to search for libraries
LLOOAADDEERR OOPPTTIIOONNSS
Other arguments are assumed to be either loader options, object files,
or libraries. These files, together with the results of any
compilations specified, are loaded in the order given, producing an
executable program with the default name aa..oouutt..
EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
For information on environment variables, see the ppee__eennvviirroonn(5) man
page.
NNOOTTEESS
The compiler uses the same set of message numbers when compiling --nn3322
or --6644, but it uses a different set of message numbers when compiling
--oo3322. Keep this in mind when writing multi-ABI MMaakkeeffiilleess.
All SGI platforms support the development and execution of --oo3322
applications.
All SGI platforms support the development and execution of --nn3322
applications, but the subsystems containing the appropriate libraries
are not always installed by default. During installation, you may
have to select subsystems with names like pprroodduucctt..ssww3322 for --nn3322
libraries.
All SGI platforms support the development of --6644 applications, but the
subsystems containing the appropriate libraries are not always
installed by default. During installation, you may have to select
subsystems with names like pprroodduucctt..ssww6644 for --6644 libraries.
Most SGI platforms do not support the execution of --6644 applications.
If the output of %%uunnaammee returns IRIX64, you can run 64-bit programs.
The compiler attempts to continue after finding semantic errors.
These errors may result in compiler internal errors.
EEXXAAMMPPLLEESS
EXAMPLE 1: Compile 64-bit MIPS IV (R8000, R10000, R5000) code, which
will not run on R4000/R4400 processors.
cc -64 -mips4 ...
EXAMPLE 2: Compile 64-bit ABI (MIPS 3) code, scheduled for best
performance on the R8000 processor but not using R8000-specific (MIPS
IV) instructions so that it will be executable on R4000/R4400
processors.
cc -64 -TARG:proc=r8000 ...
EXAMPLE 3: Compile with extensive optimization enabled, allowing
transformations which affect floating point roundoff and overflow,
assuming strict ANSI C aliasing rules.
cc -O2 -OPT:roundoff=2:alias=typed ...
EXAMPLE 4: Compile with aggressive optimization (including SWP)
enabled, allowing transformations with arbitrary effects on floating
point roundoff and overflow.
cc -O3 -OPT:roundoff=3 ...
FFIILLEESS
ffiillee..cc C source file
ffiillee..ii C source file
ffiillee..oo Object file
ffiillee..ss Assembly language source file
ffiillee..LL Listing file
aa..oouutt Loaded output
mmoonn..oouutt File produced for analysis by pprrooff(1)
//uussrr//iinncclluuddee Standard directory for ##iinncclluuddee files
//uussrr//bbiinn//lldd Loader
//uussrr//bbiinn//ccoorrdd Function rearranger
//ttmmpp//ccmmppllrr** Temporary files
//eettcc//ccoommppiilleerr..ddeeffaauullttss
Default ABI, ISA and processor options
configuration file
//uussrr//lliibb{{3322,,6644}}//lliibbcc..ssoo..11
Shared standard library (This file is loaded by
using the --llcc loader option and not a full path
name.)
//uussrr//lliibb{{3322,,6644}}//lliibbffppee..ssoo
Floating point exception handler library, see
ssiiggffppee(3c)
//uussrr//lliibb{{3322,,6644}}//lliibbmm..ssoo
Shared math library
//uussrr//lliibb{{3322,,6644}}//lliibbpprrooff..aa
Profiling library
SSEEEE AALLSSOO
B. W. Kernighan and D. M. Ritchie, _T_h_e _C _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e,
Prentice-Hall, 1978
_A_N_S_I _X_3._1_5_9-_1_9_8_9, _t_h_e _A_N_S_I _C _S_t_a_n_d_a_r_d
_P_r_o_g_r_a_m_m_i_n_g _i_n _C-_a _t_u_t_o_r_i_a_l
_C _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
_P_o_w_e_r _C _U_s_e_r'_s _G_u_i_d_e
_A_N_S_I _C _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
_M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g, _D_e_b_u_g_g_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e
_M_I_P_S_p_r_o _6_4-_b_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
_M_I_P_S_p_r_o _N_3_2 _A_B_I _G_u_i_d_e
aass(1), CCCC(1), ccoolllliiddee(1), ccpppp(1), ccoopptt(1), ff9900(1), ppccaa(1), mmppcc(1),
ddiiss(1), nnmm(1), ddbbxx(1), eellffdduummpp(1), ff7777(1), ffttoocc(1), lldd(1), ppiixxiiee(1),
pprrooff(1), ssppeeeeddsshhoopp(1), wwhhaatt(1)
ggeettaabbii(3c), ssiiggffppee(3c),
llnnoo(5), oo3322(5), oopptt(5)
This man page is available only online.